package com.cinc.ebc.fi.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cinc.ebc.fi.entity.FiReceiveVoucherDetail;
import com.cinc.ebc.fi.entity.FiReceiveVoucher;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cinc.ebc.fi.model.*;
import com.cinc.ebc.fi.vo.FiCustomerReceiveDetailPage;
import com.cinc.ebc.fi.vo.FiPaymentVoucherDetailPage;
import com.cinc.ebc.fi.vo.FiReceiveVoucherDetailPage;
import com.cinc.ebc.fi.vo.FiSupplyPaymentDetailPage;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

/**
 * @Description: 收款单
 * @Author: jeecg-boot
 * @Date:   2022-12-17
 * @Version: V1.0
 */
public interface IFiReceiveVoucherService extends IService<FiReceiveVoucher> {

	/**
	 * 添加一对多
	 *
	 */
	public void saveMain(FiReceiveVoucher fiReceiveVoucher,List<FiReceiveVoucherDetail> fiReceiveVoucherDetailList) ;

	/**
	 * 修改一对多
	 *
	 */
	public void updateMain(FiReceiveVoucher fiReceiveVoucher,List<FiReceiveVoucherDetail> fiReceiveVoucherDetailList);

	/**
	 * 删除一对多
	 */
	public void delMain (String id);

	/**
	 * 批量删除一对多
	 */
	public void delBatchMain (Collection<? extends Serializable> idList);

    void audit(List<FiReceiveVoucher> fiReceiveVoucherList);

    void verify(List<FiReceiveVoucher> fiReceiveVoucherList);

	/**
	 * 明细分页查询
	 *
	 * @param page
	 * @param param
	 * @return
	 */
	void detailPage(Page<FiReceiveVoucherDetailModel> page, FiReceiveVoucherDetailPage param);

	/**
	 * 客户应收明细账-收款
	 *
	 * @param page
	 * @param param
	 * @return
	 */
	void customerReceiveDetailPage(Page<FiCustomerReceiveDetailModel> page, FiCustomerReceiveDetailPage param);

	/**
	 * 客户应收明细账-预收款
	 *
	 * @param page
	 * @param param
	 * @return
	 */
	void customerAdvanceReceiveDetailPage(Page<FiCustomerAdvanceReceiveDetailModel> page, FiCustomerReceiveDetailPage param);
}
